/**
*\file partage_simu.h
*\author H4201
* partage entre la simulation et notre appli (mémoire partagée)
*/
#ifndef SIMU_PARTAGE_H
#define SIMU_PARTAGE_H

#include <sys/types.h> 
/*DEFINITIONS AND MACROS*/
/**
 adresse/nom de la shm
*/
#define SHM_NAME "/ciai_shm_simu"
#define TRUE 1
#define FALSE 0
/**
 OK pour l'imprimante, palette etc..
*/
#define OK 1
/**
 NOK pour l'imprimante, palette etc..
*/
#define NOK 0

/**
	Fichier servant à mettre en commun les ressources accédées par la simulation et notre appli Linux
*/

// === Struct à utiliser pour la SHM ===
/**
 \struct shm_data
 structure de la mémoire partagée
*/
typedef struct shm_data
{
	unsigned short clapet;	/*!< écriture: commander le clapet */
	unsigned int dim;		/*!< lecture: dimensions de la pièce qui arrive */
	unsigned short imp;		/*!< lecture: état de l'imprimante */
	unsigned short film;	/*!< lecture: état de la filmeuse */
	unsigned short carton;	/*!< lecture: présence de carton */
	unsigned short palette;	/*!< lecture: présence de palette */
	pid_t pid_appli;		/*!< écriture: pid de l'appli linux, pour recevoir les signaux */
} shm_data;

/*GLOBAL VARIABLES*/
/**
 pointeur permettant d'accéder à la struct de la mémoire partagée
*/
shm_data* g_shm;

#endif // SIMU_PARTAGE_H
